home *** CD-ROM | disk | FTP | other *** search
-
-
- RELEASEWALLMEM:
- move.l #walltiles,a0
- move.l #wallchunkdata,a5
- relmem:
- move.l 4(a5),d0
- beq.s relall
-
- move.l (a0),d1
- beq.s notthismem
-
- move.l d1,a1
- move.l 4.w,a6
- movem.l a0/a5,-(a7)
- jsr -210(a6)
- movem.l (a7)+,a0/a5
-
-
- notthismem:
- addq #8,a5
- addq #4,a0
- bra.s relmem
-
- relall:
- rts
-
- LOADWALLS:
-
- **************************************
-
- * New loading system:
- * Send each filename to a 'server' along with
- * addresses for the return values (pos,len)
- * then call FLUSHQUEUE, which actually loads
- * the files in...
-
- move.l #walltiles,a0
- moveq #39,d7
- emptywalls:
- move.l #0,(a0)+
- dbra d7,emptywalls
-
- move.l #walltiles,a4
- move.l LINKFILE,a3
- add.l #WallGFXNames,a3
- move.l #0,TYPEOFMEM
-
- loademin:
- move.l (a3),d0
- beq loadedall
-
- move.l a3,a0
- .findend:
- tst.b (a0)+
- bne.s .findend
-
- move.b #0,-(a0) ;0
- move.b #0,-(a0) ;D
- move.b #0,-(a0) ;A
- move.b #0,-(a0) ;W
- move.b #0,-(a0) ;6
- move.b #0,-(a0) ;5
- move.b #0,-(a0) ;2
-
- move.b #'w',(a0)+
- move.b #'a',(a0)+
- move.b #'d',(a0)+
-
- move.l a3,a0
- move.l a4,d0 ; address to put start pos
- move.l #0,d1
-
- jsr QUEUEFILE
-
- addq #4,a4
-
- adda.w #64,a3
- bra loademin
-
- loadedall:
-
- rts
-
- **************************************
-
- ; move.l #walltiles,a0
- ; moveq #39,d7
- ;emptywalls:
- ; move.l #0,(a0)+
- ; dbra d7,emptywalls
- ;
- ; move.l #walltiles,a4
- ; move.l LINKFILE,a3
- ; add.l #WallGFXNames,a3
- ; move.l #0,TYPEOFMEM
- ;
- ;loademin:
- ; move.l (a3),d0
- ; beq loadedall
-
- ; movem.l a4/a3,-(a7)
-
- ; move.l a3,a0
- ; jsr LOADAFILE
-
- ; movem.l (a7)+,a4/a3
-
- ; move.l d0,(a4)+
- ; move.l d1,4(a3)
-
- ; adda.w #64,a3
- ; bra loademin
-
- ;loadedall:
- ; PRSDN
- ; rts
-
- handle: dc.l 0
-
- UNPACKED: dc.l 0
-
- walltiles:
- ds.l 40
-
- DEFLOADFILE:
- ; Load a file in and unpack it if necessary.
- ; Pointer to name in a0
- ; Returns address in d0 and length in d1
-
- movem.l d0-d7/a0-a6,-(a7)
- bra.s intoload
-
- LOADAFILE:
- ; Load a file in and unpack it if necessary.
- ; Pointer to name in a0
- ; Returns address in d0 and length in d1
-
- movem.l d0-d7/a0-a6,-(a7)
-
- move.l a0,d1
- move.l doslib,a6
- move.l #1005,d2
- jsr -30(a6)
- move.l d0,handle
-
- intoload:
-
- lea fib,a5
- move.l handle,d1
- move.l a5,d2
- move.l doslib,a6
- jsr -390(a6)
- move.l $7c(a5),blocklen
-
- move.l TYPEOFMEM,d1
- move.l 4.w,a6
- move.l blocklen,d0
- jsr -198(a6)
-
- move.l d0,blockstart
-
- move.l doslib,a6
- move.l handle,d1
- move.l d0,d2
- move.l blocklen,d3
- jsr -42(a6)
-
- move.l doslib,a6
- move.l handle,d1
- jsr -36(a6)
-
- move.l blockstart,a0
- move.l (a0),d0
- cmp.l #'=SB=',d0
- beq ITSPACKED
-
- ; Not a packed file so just return now.
- movem.l (a7)+,d0-d7/a0-a6
-
- move.l blockstart,d0
- move.l blocklen,d1
-
- rts
-
- ITSPACKED:
-
- move.l 4(a0),d0 ; length of unpacked file.
- move.l d0,UNPACKED
- move.l TYPEOFMEM,d1
- move.l 4.w,a6
- jsr -198(a6)
-
- move.l d0,unpackedstart
-
- move.l blockstart,d0
- moveq #0,d1
- move.l unpackedstart,a0
- move.l LEVELDATA,a1
- lea $0,a2
- jsr unLHA
-
- move.l blockstart,d1
- move.l d1,a1
- move.l blocklen,d0
- move.l 4.w,a6
- jsr -210(a6)
- movem.l (a7)+,d0-d7/a0-a6
-
- move.l unpackedstart,d0
- move.l UNPACKED,d1
-
- rts
-
-
- unpackedstart:
- dc.l 0
-
- wallchunkdata:
- dc.l GreenMechanicNAME,18560
- dc.l BlueGreyMetalNAME,13056
- dc.l TechnoDetailNAME,13056
- dc.l BlueStoneNAME,10368
- dc.l RedAlertNAME,7552
- dc.l RockNAME,10368
- dc.l scummyNAME,24064
- dc.l stairfrontsNAME,2400
- dc.l bigdoorNAME,13056
- dc.l redrockNAME,13056
- dc.l dirtNAME,24064
- dc.l SwitchesNAME,3456
- dc.l shinyNAME,24064
- dc.l bluemechNAME,15744
- dc.l 0,0
-
- GreenMechanicNAME:
- dc.b 'AB3D1:includes/walls/greenmechanic.256wad'
- dc.b 0
- even
- BlueGreyMetalNAME:
- dc.b 'AB3D1:includes/walls/bluegreymetal.256wad'
- dc.b 0
- even
- TechnoDetailNAME:
- dc.b 'AB3D1:includes/walls/technodetail.256wad'
- dc.b 0
- even
- BlueStoneNAME:
- dc.b 'AB3D1:includes/walls/bluestone.256wad'
- dc.b 0
- even
- RedAlertNAME:
- dc.b 'AB3D1:includes/walls/redalert.256wad'
- dc.b 0
- even
- RockNAME:
- dc.b 'AB3D1:includes/walls/rock.256wad'
- dc.b 0
- even
- scummyNAME:
- dc.b 'AB3D1:includes/walls/scummy.256wad'
- dc.b 0
- even
- stairfrontsNAME:
- dc.b 'AB3D1:includes/walls/stairfronts.256wad'
- dc.b 0
- even
- bigdoorNAME:
- dc.b 'AB3D1:includes/walls/bigdoor.256wad'
- dc.b 0
- even
- redrockNAME:
- dc.b 'AB3D1:includes/walls/redrock.256wad'
- dc.b 0
- even
- dirtNAME:
- dc.b 'AB3D1:includes/walls/dirt.256wad'
- dc.b 0
- even
- SwitchesNAME:
- dc.b 'AB3D1:includes/walls/switches.256wad'
- dc.b 0
- even
- shinyNAME:
- dc.b 'AB3D1:includes/walls/shinymetal.256wad'
- dc.b 0
- even
- bluemechNAME:
- dc.b 'AB3D1:includes/walls/bluemechanic.256wad'
- dc.b 0
- even
-
-